package cyx.example.ddd.application.order.command;

import cyx.example.ddd.application.order.dto.OrderDTO;

/**
 * 订单命令服务接口
 * 专门处理订单相关的写操作，实现CQRS模式
 */
public interface OrderCommandService {

    /**
     * 创建订单
     */
    OrderDTO createOrder(CreateOrderCommand command);

    /**
     * 支付订单
     */
    void payOrder(String orderId);

    /**
     * 取消订单
     */
    void cancelOrder(String orderId, String reason);

    /**
     * 确认订单
     */
    void confirmOrder(String orderId);

    /**
     * 开始配送
     */
    void startShipping(String orderId);

    /**
     * 完成订单
     */
    void completeOrder(String orderId);
}